/*
* acooly.cn Inc.
* Copyright (c) 2017 All Rights Reserved.
* create by ouwen
* date:2017-10-10
*/
package com.yiji.fintech.musfinance.entity;


import com.acooly.core.utils.Money;
import com.yiji.fintech.musfinance.base.enums.CurrencyEnum;
import com.yiji.fintech.musfinance.base.enums.DeviceTypeEnum;
import com.yiji.fintech.musfinance.enums.GoodsTypeEnum;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * center_transaction_deopsit Entity
 *
 * @author ouwen
 * Date: 2017-10-10 11:19:40
 */
@Getter
@Setter
@Entity
@Table(name = "center_transaction_deopsit")
public class TransactionDeopsit extends AbstractTransaction {

	/** 渠道API */
	@Size(max=32)
	private String gatewayChannelApi;

	/** 付款银行编码 */
	@Size(max=16)
	private String payBankId;

	/** 付款银行名称 */
	@Size(max=64)
	private String payBankName;

	/** 付款方账号 */
	@Size(max=32)
	private String payAccountNo;

	/** 付款方账户名 */
	@Size(max=128)
	private String payAccountName;

	/** 收款账户名 */
	@Size(max=64)
	private String recAccountName;

	/** 收款账户 */
	@Size(max=32)
	private String recAccountNo;

	/** 收款银行名称 */
	@Size(max=128)
	private String recBankName;

	/** 收款行编码 */
	@Size(max=16)
	private String recBankId;

	@Size(max=255)
	/** 收款方银联号 */
	private String recUnionBankNo;

	/** 充值金额 */
	private Money amount;

	/** 实际到账金额 */
	private Money amountIn;

	/** 币种 */
	@Enumerated(EnumType.STRING)
	private CurrencyEnum currency;

	/** 扩展字段 */
	@Size(max=4000)
	private String extendFields;

	/** 微信APP支付时需要上送 wxAppid */
	@Size(max=64)
	private String wxAppId;

	/** 设备类型 */
	@Enumerated(EnumType.STRING)
	private DeviceTypeEnum deviceType;

	/** 商品类型 */
	@Enumerated(EnumType.STRING)
	private GoodsTypeEnum goodsType;

	/** 微信公众号支付需要上送 openId */
	@Size(max=64)
	private String openId;

	/** APPID */
	@Size(max=255)
	private String appId;

	/** 发送网关时间 */
	private Date gatewayTime;

	/** 交易时间 */
	private Date transTime;

	/** 清算时间 */
	private Date settleTime;

	/** 授权码 */
	@Size(max=255)
	private String authCode;

	/** 商品描述 */
	@Size(max=255)
	private String goodsMemo;

	/** 商品标题 */
	@Size(max=255)
	private String goodsTitle;

	/** 终端IP */
	@Size(max=255)
	private String mchCreateIp;

}
